由於課程關係要參加,所以一開始對於要做甚麼主題、內容沒有甚麼方向,就看了歷屆鐵人賽各個主題的文章,思考著要用這30天來學習甚麼新技能,結果在Mobile Development的主題中看到了很多關於Flutter的文章,自己對於跨平台開發也不是很了解,所以就決定透過這次鐵人賽要來認識這個近年逐漸受歡迎的開發工具!
以下先簡單介紹一下不同於跨平台開發的原生及混合式開發:
以前,要開發一個能在 iOS 及 Android 兩個平台同時運行的應用程式時,會採用雙平台原生開發 (Native App),也就是使用各自平台提供的開發工具進行開發,但兩個平台所用的程式語言不一樣(iOS:Xcode、Objective-C / Swift;Android:Android Studio、JAVA / Kotlin),工程師就要寫兩套程式,而需要花費較多的開發成本及人力投入。
另外一種方式是混合式App (Hybrid App),以Web App方式開發用戶端程式,結合原生App的外殼包裝。在APP內任何地方都能使用瀏覽器UI元件(WebView)瀏覽HTML網頁,就可以直接將做好的網站放進去,再加上響應式網頁的技術,使用不同裝置瀏覽網站時對應不同解析度也有適合的呈現,不用特意調整。因此一種程式碼(HTML / CSS / JavaScript)可以用於兩種APP,以此提高效率、減少成本。
不過因為瀏覽器本身就是一個完整的程式,所以這種方式會使應用程式效能降低、程式變得不流暢而且手機版網頁介面可能沒有原生App的用戶體驗來得好。為了解決混合開發及原生開發所衍生的問題,就有了越來越多新的跨平台開發技術出現!
今天就介紹到這裡,明天會繼續介紹Flutter!
參考資料:
https://progressbar.tw/posts/38
https://www.cloud-interactive.com/tw/insights/whats-revolutionary-about-flutter